<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />        
        <link rel="stylesheet" type="text/css" href="../../css/guide.css" />        
        <script type="text/javascript">var basepath = '../../'; var lang = 'fr';</script>        
        <script type="text/javascript" src="../../js/loader.js"></script>        
    </head>
    <body>     
        <h1>Cookie</h1>
        <p>
            La classe Cookie permet de gérer facilement les cookies pour votre application.
        </p>
        
        <h2>Méthodes</h2>
        <h3>expire()</h3>
        <p>
            Méthode statique. Retourne la valeur en seconde d'une durée donnée en minute (défaut), heure, jour. Permet de 
            facilement définir la durée de vie d'un cookie.
        </p>
        <php>
            // 60 minutes => 3600
            Cookie::expire('60');
            
            // 1 heure => 3600
            Cookie::expire('1', h);
            
            // 1 jour => 86400
            Cookie::expire('1', 'd');
        </php>
        
        <h3>get()</h3>
        <p>
            Méthode statique. Retourne la valeur du cookie spécifié ou la valeur par défaut.
        </p>
        <php>
            // Retourne la valeur du cookie "mycookie" sinon retourne false
            Cookie::get('mycookie');
            
            // Retourne la valeur du cookie "mycookie" sinon retourne "defaultvalue"
            Cookie::get('mycookie', 'defaultvalue');            
        </php>
        <blockquote class="info">
            La méthode get() va vérifier automatiquement la signature (hash) de la valeur du cookie. Il est donc 
            nécessaire de créer vos cookies avec la méthode set() de la classe Cookie.
        </blockquote>
        
        <h3>set()</h3>
        <p>
            Méthode statique. Crée un nouveau cookie. La méthode prend les mêmes arguments que la fonction 
            <a href="http://php.net/manual/fr/function.setcookie.php">setcookie()</a> de PHP, dans l'ordre :
        </p>
        <table>
            <tr>
                <td><strong>nom</strong></td>
                <td>Le libellé du cookie à créer. Servira pour l'identifier avec la méthode get</td>
            </tr>
            <tr>
                <td><strong>valeur</strong></td>
                <td>La valeur à stocker dans le cookie. Si la valeur est un tableau il est automatiquement sérialisé.</td>
            </tr>
            <tr>
                <td><strong>durée</strong></td>
                <td>Durée de vie du cookie en secondes. Par défaut = 3600s (une heure)</td>
            </tr>
            <tr>
                <td><strong>chemin</strong></td>
                <td>Le chemin sur le serveur sur lequel le cookie sera disponible. Par défaut = "/" (ensemble du domaine)</td>
            </tr>
            <tr>
                <td><strong>domaine</strong></td>
                <td>Le domaine pour lequel le cookie est disponible. NULL par défaut (tout domaine)</td>
            </tr>
            <tr>
                <td><strong>secure</strong></td>
                <td>
                    Indique si le cookie doit uniquement être transmis à travers une connexion sécurisée HTTPS depuis le
                    client. NULL par défaut (détecte si la connexion courante est en HTTPS)
                </td>
            </tr>
            <tr>
                <td><strong>httponly</strong></td>
                <td>
                    Lorsque ce paramètre vaut TRUE, le cookie ne sera accessible que par le protocole HTTP. TRUE par défaut.
                </td>
            </tr>
        </table>
        <blockquote class="info">
            La valeur enregistrée avec la méthode set() est automatiquement enregistrée avec son hash permettant ainsi 
            de la signer.
        </blockquote>
       
        <h3>delete()</h3>
        <p>Méthode statique. Supprime un cookie par son nom.</p>
    </body>            
</html>